﻿using BenCaoXuan.Infrastructure.Attr;
using BenCaoXuan.Infrastructure.Dto.Middle.Request.Customs;
using BenCaoXuan.Infrastructure.Dto;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using BenCaoXuan.Infrastructure.Dto.Middle.Request.Register;
using BenCaoXuan.Infrastructure.Dto.Middle.Request.Commission;
using BenCaoXuan.Infrastructure.Dto.Middle.Response.Customs;

namespace BenCaoXuan.Service.Interface.middle
{
    [Provider_]
    public interface I_Promote_Service
    {
        /// <summary>
        /// 获取消费统计数据周
        /// </summary>
        Task<Api_Result_Dto> Get_ConsumeStats(string customerId, string dateRange);
        /// <summary>
        /// 检查推广人的所有被推广人订单，仅≤5条时处理佣金（含积分）
        /// </summary>
        /// <param name="customerId">推广人ID（当前登录客户ID）</param>
        /// <returns></returns>
        Task<Api_Result_Dto> Check_InviteeCommission(string customerId);
        /// <summary>
        /// 获取消费
        /// </summary>
        /// <param name="customerId"></param>
        /// <returns></returns>
        Task<Api_Result_Dto> Get_CustomerConsumeStats(string customerId);
        /// <summary>
        /// 获取该客户的消费、积金、佣金
        /// </summary>
        /// <param name="customerId"></param>
        /// <returns></returns>
        Task<Api_Result_Dto> Get_CustomerFinance(string customerId);
        /// <summary>
        /// 获取佣金排名前五的客户
        /// </summary>
        /// <returns>包含客户佣金及VIP信息的列表</returns>
        Task<Api_Result_Dto> Get_Top_FiveCommission();
        /// <summary>
        /// 客户注册
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<Api_Result_Dto> Register(Customs_Request_Dto dto);
        /// <summary>
        /// 添加推广链接数据、佣金
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<Api_Result_Dto> Add_CustomerCommission(Commission_Request_Dto dto);
        /// <summary>
        /// 根据注册ID查询推广链接表，为对应推广人VIP增加积分
        /// </summary>
        /// <param name="registerId">注册ID</param>
        /// <returns></returns>
        //Task<Api_Result_Dto> Add_CustomerCommission(string registerId);
        /// <summary>
        /// 新增VIP客户并更新客户表为正式客户
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<Api_Result_Dto> Add_VipCustomer(VipCustomer_Request_Dto dto);
        /// <summary>
        /// 检查客户是否为VIP
        /// </summary>
        /// <param name="customerId">客户ID</param>
        /// <returns></returns>
        Task<Api_Result_Dto> CheckIsVip(string customerId);

        /// <summary>
        /// 给推广人添加推广成功的注册佣金数据
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<Api_Result_Dto> AddCustomerCommissionByRegister(AddCustomerCommissionByRegister_Dto dto);
    }
}
